1. Field of the Invention
The present invention relates to collaborative software development and more particularly to console data exchange between developers in a collaborative software development environment.
2. Description of the Related Art
Software development has evolved from the primitive specification of program code on punch cards to a source code file driven compilation and build workflow. Early, simplistic software development projects involved a single developer coding to a specification on a single development computer using a text editor to access a source code file and separate compile and build programs processing the source code file into an executable binary. As the complexity of the computer program grew in parallel to the growth of computing power, software development evolved into a multi-developer endeavor requiring sophisticated source code management and debugging tools to corral and coordinate the efforts of the developers.
Principal to the modern software development workflow is the integrated development environment (IDE). Initially introduced as the primary user interface to a particular coding language such as the venerable PASCAL or ubiquitous C++ and Java programming languages, the IDE has morphed into its own stand-alone computing product and now, is more akin to a document management enterprise system rather than a user interface to a hodge-podge of coding and debugging tools. To wit, central to any marketable IDE for collaborative software development is a version control system (VCS).
The modern form of the VCS stems from early “diff” programs that processed two different text files and produced a log of differences in text between the two different text files. Today, the prototypical VCS tracks differences in source code files as well as other file oriented metrics resulting from the multi-party editing of the same source code file. Further, the modern VCS permits access to any of a family of versions of the same source code file. Such operations include, by way of example, requests to access a version of a source code file that is common to two different users, a merged version of two different versions of a source code file produced by two different users, a latest or newer version of a source code file, an older ancestral version of a source code file that is common to two different users, and the like.
Managing different versions of a source code file in an IDE for multiple different developers in of itself is not sufficient to efficiently support multi-developer software development projects over the entirety of the software lifecycle. Rather, part and parcel of an effective multi-party development effort is the sharing of development data—especially compiler errors and debug messages produced by the IDE during software development. At present, conventional practice includes the “cutting and pasting” of console messages produced by the debugger of an IDE into a message to be transmitted to a co-developer. While the rudimentary sharing of the console messages no doubt can be helpful, the sharing of the console messages alone does not permit the joint experience of debugging requisite to effective software development. Rather, the mere sharing of console messages still requires the recipient of the console messages to first load the IDE, then to determine which source code files have been implicated by the console messages, to further determine an appropriate version of those source code files, and finally to load those source code files of the correct versions in the IDE.